const {
  defineConfig
} = require("@vue/cli-service");
const path = require("path");
const cdn = {
  js: [
    process.env.NODE_ENV == "pro"?`${process.env.prefix}/static/js/vue.global.prod.js`:`static/js/vue.global.js`,
    // 'static/js/vue-router.global.prod.js'
    // 'static/js/vuex.global.prod.js'
  ]
}

module.exports = defineConfig({
  publicPath: process.env.NODE_ENV == "pro" ?
    process.env.prefix : "/blog",
  transpileDependencies: true,
  configureWebpack: {
    resolve: {
      alias: {
        utils: path.resolve("src/utils"),
        src: path.resolve("src"),
      },
    },
    externals: {
      vue: 'Vue',
      // 'vue-router': 'VueRouter',
      // vuex: 'Vuex',
    },
  },
  devServer: {
    proxy: {
      //配置跨域
      '/short-passage-api': {
        target: "http://localhost:10000/", // 后台接口域名
        ws: true, //如果要代理 websockets，配置这个参数
        changOrigin: true, //是否跨域
        pathRewrite: {
            '^/short-passage-api': '' // 要是写线上地址^/api后面没有属性值 在post请求的路径里面直接写/api/add 什么的 要是有属性值就要写/api/加api的属性值在加请求路径最后的理由
        }
    },
    }
  },
  /*pages指定入口，同样是key-value对的形式，只不过是将配置集成到了一起*/
  pages: {
    /*名称*/

    index: {
      entry: "src/manager/main.js",
      template: "public/index.html",
      /*这里是html输出到的文件地址，也可以利用/斜杠表示目录，例如index/index.html就代表创建index目录并把index.html放到目录下*/
      filename: "index.html",
      chunks: ["chunk-vendors", "runtime", "index"],
      cdn: cdn,
      prefix:process.env.prefix
    },
    essayDetail: {
      /*入口，同上面的entry*/
      entry: "src/essayDetail/essayDetail.js",
      /*模版，同上面的html-webpack-plugin插件*/
      template: "public/essay.html",
      /*输出后的文件名称*/
      filename: "essay.html",
      cdn: cdn,
      chunks: ["chunk-vendors", "runtime", "essayDetail"],
    },
    userHome: {
      /*入口，同上面的entry*/
      entry: "src/userHome/userHome.js",
      /*模版，同上面的html-webpack-plugin插件*/
      template: "public/user.html",
      /*输出后的文件名称*/
      filename: "home.html",
      cdn: cdn,
      chunks: ["chunk-vendors", "runtime", "userHome"],
    },
  },
});